"""
此文件逻辑是用于获取csv格式的数据集，可以是ncodecsv格式的数据集，也可以是普通csv格式的数据集。
此文件只获取数据集，不做处理
"""

import pandas as pd
import matplotlib.pyplot as plt
from utility import checker as checker


plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

class LSTMDatasetfromCSV:
    def __init__(self,file_path='',ncodecsv=True):
        self.file_path = file_path
              
        self.dataset_original = None
        # 如果是ncodecsv，则先读取列名
        if ncodecsv:
            # 读取列名：从第3行（索引为2）读取
            csv_headers = pd.read_csv(self.file_path, skiprows=2, header=None).iloc[0, 2:].tolist()
            csv_headers = checker.strip_spaces(csv_headers)   
           
            # 拼接完整的列名：第1列是 index，第2列是 time，从第3列开始是数据列
            column_names = ["index", "time"] + csv_headers
            # 读取真正的数据，从第9行开始（即 skiprows=8）
            self.dataset_original = pd.read_csv(self.file_path, skiprows=8, header=None, names=column_names )
        else:
            csv_headers = pd.read_csv(self.file_path, nrows=0).columns.tolist()
            csv_headers = checker.strip_spaces(csv_headers)   
          
             # 原始表数据集
            self.dataset_original = pd.read_csv(self.file_path)
            # ★ 关键：把所有列名中的空格去掉（也可换成正则 r"\s+" 去所有空白）
        # 统一在这里去掉所有列名里的空白字符（含制表符、换行、多个空格）
        self.dataset_original.columns = self.dataset_original.columns.str.replace(r"\s+", "", regex=True)           
  
  
    def get_data_from_csv(self):        
        return self.dataset_original   

if __name__ == '__main__':
    # 这里第一列的列名不要写进来
    pass
   
        
